package io.legado.app.utils

import io.legado.app.help.globalExecutor
import java.util.logging.FileHandler
import java.util.logging.LogRecord

class AsyncFileHandler(pattern: String) : FileHandler(pattern) {

    /**
     * 发布日志记录到日志系统。
     * 此方法首先检查日志记录是否符合当前日志级别，如果不符合则直接返回，不再处理。
     * 如果日志记录符合当前日志级别，则将其提交到全局执行器中进行异步处理。
     * 这种异步处理的方式可以提高日志处理的性能，避免日志处理阻塞主线程。
     *
     * @param record 日志记录对象，可能为null。表示待发布到日志系统的信息。
     */
    override fun publish(record: LogRecord?) {
        // 检查日志记录是否可记录，如果不可记录则直接返回
        if (!isLoggable(record)) {
            return
        }
        // 提交日志记录任务到全局执行器中进行异步处理
        globalExecutor.execute {
            super.publish(record)
        }
    }

}
